package com.hsnn.medstgmini.sys.information.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.hsnn.medstgmini.pro.base.model.form.FileUploadResult;
import com.hsnn.medstgmini.sys.information.model.SysMessage;
import com.hsnn.medstgmini.util.Pagination;

public interface SysMessageManager {

	/**
	 * @category 新建消息
	 * @author 韩守松
	 * @date   2015年11月9日
	 * @param  @param sysMessage
	 */
	void saveOrUpDate(SysMessage sysMessage);
	
	/**
	 * @category 获取草稿箱消息
	 * @author 韩守松
	 * @date   2015年11月9日
	 * @param  @param sysMessage
	 * @param  @return
	 */
	Pagination getSysMessageList(Pagination page,SysMessage sysMessage);
	/**
	 * @category 获取发件箱消息
	 * @author 韩守松
	 * @date   2015年11月9日
	 * @param  @param sysMessage
	 * @param  @return
	 */
	Pagination getSysMessageSendList(Pagination page,SysMessage sysMessage);
	/**
	 * @category 获取收件箱消息
	 * @author 韩守松
	 * @date   2015年11月9日
	 * @param  @param sysMessage
	 * @param  @return
	 */
	Pagination getSysMessageReceList(Pagination page,SysMessage sysMessage);
	
	/**
	 * @category 根据消息id获取消息信息
	 * @author 韩守松
	 * @date   2015年11月10日
	 * @param  @param messageId
	 * @param  @return
	 */
	Map<String,Object> getSysMessageById(String messageId);
	
	/**
	 * @category 根据消息id修改消息状态
	 * @author 韩守松
	 * @date   2015年11月11日
	 * @param  @param sysMessage
	 */
	void update(SysMessage sysMessage);
	
	/**
	 * @category 根据消息id修改消息阅读状态
	 * @author 韩守松
	 * @date   2015年11月11日
	 * @param  @param sysMessage
	 */
	void updateReadStatus(SysMessage sysMessage);
	
	/**
	 * 附件上传
	 * @param drugFile
	 * @param user
	 * @return
	 */
   FileUploadResult uploadFile(MultipartFile drugFile);
	
   /**
    * @category 获取系统消息
    * @author 韩守松
    * @date   2015年11月16日
    * @param  @param page
    * @param  @param sysMessage
    * @param  @return
    */
   List<SysMessage> getSysMessageListByType(Pagination page,SysMessage sysMessage);
	
	/**
	 * @category 更新附件下载次数
	 * @author 韩守松
	 * @date   2015年11月17日
	 * @param  @param sysInfoAttachId
	 */
	void updateDownSum(String sysInfoAttachId,String userId);
}
